package interpreter_pattern.ex2;

/**
 * 表示"或"表达式的类，继承自表达式基类
 * @author 申书航
 * @version 1.0
 */
public class OrExpression extends Expression {

    private final Expression one;

    private final Expression two;

    /**
     * 构造函数，用于初始化两个表达式
     * @param one 第一个表达式
     * @param two 第二个表达式
     */
    public OrExpression(Expression one, Expression two) {
        this.one = one;
        this.two = two;
    }

    /**
     * 解释方法，根据上下文进行解释，返回一个布尔值
     * @param ctx 上下文字符串
     * @return 如果任一表达式为真，则返回真
     */
    @Override
    public boolean interpret(String ctx) {
        return one.interpret(ctx) || two.interpret(ctx);
    }
}
